#include <iostream>
#include <vector>

using namespace std;

#include "RBTree.h"

#include "AVLTree.h"

//int main()
//{
//	int a[] = { 4, 2, 6, 1, 3, 5, 15, 7, 16, 14 };
//	RBTree<int, int> t;
//	for (auto e : a)
//	{
//		t.Insert(make_pair(e, e));
//		cout << "Insert:" << e << "->" << t.IsBalance() << endl;
//	}
//
//
//	return 0;
//}

int main()
{
	const int N = 10000000;
	vector<int> v;
	v.reserve(N);
	srand(time(0));
	RBTree<int, int> rbt;
	for (size_t i = 0; i < N; i++)
	{
		v.push_back(rand() + i);
	}

	for (auto e : v)
	{
		rbt.Insert(make_pair(e, e));
	}

	cout << rbt.IsBalance() << endl;
	cout << "高度 :" << rbt.Height() << endl;
	cout << "旋转次数 :" << rbt._rotateCount << endl;

	xyx::AVLTree<int, int> avlt;

	for (auto e : v)
	{
		avlt.Insert(make_pair(e, e));
	}

	cout << avlt.IsBalance() << endl;
	cout << "高度 :" << avlt.Height() << endl;
	cout << "旋转次数 :" << avlt._rotateCount << endl;
	return 0;
}